package com.bjpowernode.ba01;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.omg.CORBA.PRIVATE_MEMBER;
import org.springframework.stereotype.Component;

/**
 * 有参数方法更改参数类型
 *
 */
@Component
@Aspect
public class DestroyAspect {
	

	/**
	 * 有参数的方法，注意切点表达式方法名参数标注..
	 * 可以更改参数类型,本例增加了字符串，修改了参数数量
	 * @param jp
	 */
	@Before(value="execution(* com.bjpowernode..destroy*(..))")
	public void getArgsInfo(JoinPoint jp){
		
		//获取切入点方法的参数列表
		Object args [] = jp.getArgs();
	
		
		for (Object object : args) {
		
			
			if(isClassTypeEqual(object, "Integer")){
				
				int carNum = (Integer)object +1; //增加参数数量
				System.out.println("车数量："+ carNum);
				
			}
			
			if(isClassTypeEqual(object, "String")){
				System.out.println("车型： A beautiful "+ object);
			}
			
			
		}
	
	}
	
	private boolean isClassTypeEqual(Object object, String simpletype){
		
		String argClassName = object.getClass().toString();
		int lastIndex = argClassName.lastIndexOf(".");
		if(argClassName.substring(lastIndex+1).equals(simpletype)){
			return true;			
		}
		
		return false;
		
	}
	
}
